package com.ingenio.siot;

import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.ingenio.siot.entity.Observacion;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

public class CalcularEstadoCalleAdapter extends Adapter{
	
	public List<Observacion> devolverObservaciones(long timeOne, long timeTwo) throws Exception{
    	
		Connection conn = null;
    	PreparedStatement stmt = null;
    	List<Observacion> observaciones = new ArrayList<Observacion>();
    	Observacion ob = null;
    	try {
    		conn = (Connection) abrirConexion();
    		String sel = "SELECT * FROM observacion WHERE fechaObservacion BETWEEN ? AND ?";
    		stmt = (PreparedStatement) conn.prepareStatement(sel);
    		stmt.setTimestamp(1, new Timestamp(timeOne));
    		stmt.setTimestamp(2, new Timestamp(timeTwo));
    		ResultSet result = stmt.executeQuery();
    		   		
    		while(result.next()){
    			Integer idMovil = result.getInt("IdMovil");
    			Double latitud = result.getDouble("latitud");
    			Double longitud = result.getDouble("longitud");
    			Double velocidad = result.getDouble("velocidad");
    			Integer idLinea = result.getInt("IdLinea");
    			ob = new Observacion(idMovil, new Date(), latitud, longitud, velocidad, idLinea);
    			observaciones.add(ob);
    		}
    	}
    	catch (Exception e) {
			e.printStackTrace();
			throw new Exception("Error al conectar con la base de datos.", e);
		}
    	finally{
    		//conn.close();
    		cerrarConexion(conn);
    	}
    	return observaciones;
	}
}
